package dto

// SwaggerTreeNode 用于swagger生成api数据结构用
type SwaggerTreeNode struct {
	Id       string             `json:"id"`
	Name     string             `json:"name"`
	Pid      string             `json:"pid"`      //pid
	Children []*SwaggerTreeNode `json:"children"` //子节点
	Data     interface{}        `json:"data"`     //节点数据
}

type TreeNode[T interface{}] struct {
	Id       string         `json:"id"`
	Name     string         `json:"name"`
	Pid      string         `json:"pid"`                       //pid
	Children []*TreeNode[T] `json:"children"`                  //子节点
	Data     T              `json:"data" swaggertype:"string"` //节点数据
}

func (node *TreeNode[T]) NodeId() string {
	return node.Id
}

func (node *TreeNode[T]) NodePid() string {
	return node.Pid
}

func (node *TreeNode[T]) NodeName() string {
	return node.Name
}
